package nl.hu.vakantievibes.client;

import java.util.ArrayList;
import java.util.Date;

import nl.hu.vakantievibes.domain.Carpool;
import nl.hu.vakantievibes.domain.Gebruiker;
import nl.hu.vakantievibes.domain.Reis;
import nl.hu.vakantievibes.domain.Boeking;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;

public class ServerCall implements ServerCallInterfaceAsync {

	ServerCallInterfaceAsync service = (ServerCallInterfaceAsync) GWT.create(ServerCallInterface.class);
    ServiceDefTarget endpoint = (ServiceDefTarget) service;

    public ServerCall() {
        endpoint.setServiceEntryPoint(GWT.getModuleBaseURL() + "rpc");
    }
    @Override
    public void processLogin(String username, String password, AsyncCallback<Gebruiker> callback) {
    	service.processLogin(username, password, callback);
    }
    @Override
	public void registerUser(String username, String password, AsyncCallback<Boolean> callback) {
		service.registerUser(username, password, callback);
	}
    @Override
	public void annuleerBoeking(Boeking b, AsyncCallback<Boolean> callback) {
		service.annuleerBoeking(b, callback);
	}
    @Override
    public void setAdmin(String geb, boolean b, AsyncCallback<Boolean> callback) {
    	service.setAdmin(geb, b, callback);
    }
    @Override
    public void setCarpoolStatus(Carpool c, String s, AsyncCallback<Boolean> callback) {
    	service.setCarpoolStatus(c, s, callback);
    }
    @Override
	public void getAlleReizen(AsyncCallback<ArrayList<Reis>> callback) {
		service.getAlleReizen(callback);		
	}
    @Override
	public void getAlleBoekingen(AsyncCallback<ArrayList<Boeking>> callback) {
		service.getAlleBoekingen(callback);		
	}
    public void getAlleCarpools(Gebruiker g, AsyncCallback<ArrayList<Carpool>> callback) {
		service.getAlleCarpools(g, callback);		
	}
    public void getAlleCarpoolsPas(Gebruiker g, AsyncCallback<ArrayList<Carpool>> callback) {
		service.getAlleCarpoolsPas(g, callback);		
	}
    @Override
    public void zoekReis(String naam, AsyncCallback<Reis> callback) {
    	service.zoekReis(naam, callback);
    }
    @Override
	public void addReis(String nm, String ld, String ps, double prs, Date vdtm,
			Date adtm, String oms, AsyncCallback<Boolean> callback) {
		service.addReis(nm, ld, ps, prs, vdtm, adtm, oms, callback);		
	}
	public void addBoeking(Reis r, Gebruiker g, String nm, String tus, String an, String strn,
			String hn, String wp, String pc, String em, int tel, int dag, int maand, int jaar,
			boolean a, boolean f, int zPl, int fPl,
			AsyncCallback<Boolean> callback) {
		service.addBoeking(r, g, nm, tus, an, strn, hn, wp, pc, em, tel, dag, maand, jaar, a, f, zPl, fPl, callback);		
	}
	public void verstuurBericht(Gebruiker bestuurder, Gebruiker passagier, Reis r, String bericht, AsyncCallback<Boolean> callback) {
		service.verstuurBericht(bestuurder, passagier, r, bericht, callback);
	}
}